package leaveSystem.controller;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import leaveSystem.bizlogic.ViewLeaveManager;
import leaveSystem.model.EmpLeave;
import leaveSystem.model.Employee;
import leaveSystem.model.Leave;

/**
 * Servlet implementation class ViewLeaveApplicationServlet
 */
@WebServlet("/viewleaveapplication")
public class ViewLeaveApplicationServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public ViewLeaveApplicationServlet() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doProcess(request, response);
	}

	
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		doProcess(request, response);
	}
	
	private void doProcess(HttpServletRequest request,
			HttpServletResponse response) throws NumberFormatException,
			ServletException, IOException {
		System.out.println("This is ViewLeaveApplicationServlet.java");
		
		int leaveid=Integer.parseInt(request.getParameter("leaveid"));
		
		ViewLeaveManager manager=new ViewLeaveManager();	
		EmpLeave empleave=manager.getEmpLeave(leaveid);
		request.setAttribute("empleave",empleave);
		
		if(request.getParameter("mgr")!=null){
			request.setAttribute("mgr", "true");
			HttpSession session=request.getSession();
			Employee emp=(Employee) session.getAttribute("currentSessionUser");
			int mgrid=emp.getEmployeeId();
			
			ArrayList<EmpLeave> leavesonsameperiod=manager.getLeaveOnSamePeriod(empleave, mgrid);
			request.setAttribute("leavesonsameperiod", leavesonsameperiod);
		}
		if(request.getParameter("readonly")!=null){
			request.setAttribute("readonly", "true");
		}
		RequestDispatcher rd = request
				.getRequestDispatcher("CompleteLeaveDetail.jsp");
		rd.forward(request, response);
	}

}

